Skip to content

Publish the LinxISA 0.57 golden manual - #21

Merged
zhoubot merged 4 commits into
mainfrom
feature_0.57
Jul 22, 2026
Merged

Publish the LinxISA 0.57 golden manual#21
zhoubot merged 4 commits into
mainfrom
feature_0.57

Conversation

@zhoubot

@zhoubot zhoubot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • publish the one-level LinxISA PTO 0.57 programming manual
  • document four-PE group execution and versioned shared tile registers
  • expose exactly 111 allowlisted PTO operations plus two identity intrinsics
  • generate source-backed pages for 53 benchmark builds across 13 families
  • deploy through a verified GitHub Pages workflow

Validation

  • all 53 benchmark manifest commands pass make -n
  • four documentation examples compile with Linx LLVM
  • mkdocs build --strict --clean
  • python3 scripts/verify_golden_manual.py --site site
  • Python and JavaScript syntax checks
  • independent review completed without findings

Known boundary

Shared tile-register lowering is an architecture-level contract and is not yet required from the current compiler. Linked QEMU runtime execution was not part of this documentation publication gate.

LinxISA Automation added 4 commits July 17, 2026 16:21
Convert one-level, two-level, and microbenchmark kernels to named v0.57 block forms, remove legacy runtime/linker shims, and add freestanding support for the current toolchain.

Constraint: This repository must publish on the dedicated feature_0.57 branch requested for benchmark integration.\nRejected: Preserve v0.56 compatibility headers | the benchmark should detect obsolete instruction spellings.\nConfidence: high\nScope-risk: broad\nDirective: Use named TLOAD/TSTORE/TEPL/CUBE blocks and the superproject v0.57 compiler/sysroot.\nTested: representative hashtable compile and disassembly contains TLOAD, TSTORE, TSEL, and TCMP; diff validation.\nNot-tested: Complete all-kernel hardware execution matrix.
Make the one-level four-PE programming model, exact intrinsic allowlist, and source-backed benchmark catalog the deployable project documentation. Add reproducible generation and verification so GitHub Pages cannot publish stale links or unsupported programming surfaces.

Constraint: Shared tile-register lowering is an architecture contract and is not yet required from the compiler

Rejected: Publish the legacy mixed-architecture catalog | it conflicts with the one-level website contract

Confidence: high

Scope-risk: broad

Directive: Regenerate and run scripts/verify_golden_manual.py whenever intrinsic or benchmark manifests change

Tested: 53 make dry-runs; four Linx documentation compile probes; strict MkDocs build; link verifier; Python and JavaScript syntax; independent review

Not-tested: Shared tile-register compiler lowering and linked QEMU runtime execution
Tell setup-python which nonstandard requirements file keys the pip cache so the documentation workflow can initialize on clean runners.

Constraint: Documentation dependencies live in requirements-docs.txt

Confidence: high

Scope-risk: narrow

Tested: YAML parse and cache-dependency-path assertion

Not-tested: GitHub-hosted runner until the pushed PR check reruns
@zhoubot
zhoubot merged commit 9462601 into main Jul 22, 2026
2 checks passed
@zhoubot
zhoubot deleted the feature_0.57 branch July 22, 2026 17:06

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 65b32fa803

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +155 to +157
$(TARGET): clean $(LINK_SCRIPT) $(COMM_OBJ) $(FREESTANDING_RUNTIME_OBJ) $(OBJ) $(EXTRA_OBJ_FILES)
@mkdir -p $(shell dirname $@)
$(LINK) $(CC_LINK) $(OBJ) $(COMM_OBJ) $(EXTRA_OBJ_FILES) -o $@
$(LINK) $(CC_LINK) $(OBJ) $(COMM_OBJ) $(FREESTANDING_RUNTIME_OBJ) $(EXTRA_OBJ_FILES) -o $@

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Gate freestanding runtime for baremetal links

When baremetal=on, COMM_OBJ is no longer cleared and already contains every common/src/*.c object, including the newly added freestanding_runtime.o; this link line appends $(FREESTANDING_RUNTIME_OBJ) a second time. Any one-level baremetal build therefore invokes the linker with the same object twice, which defines memset/memcpy/memmove twice and fails at link time; keep this extra runtime object only for the hosted/non-baremetal path or exclude it from COMM_OBJ.

Useful? React with 👍 / 👎.

@@ -0,0 +1,30 @@
#include "common/pto_tile.hpp"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add a rule before wildcarding the new common C++ file

Placing this new .cpp under test/common/src makes it part of COMM_OBJ, but Makefile.common only has build rules for common .c and .s files. In any two-level baremetal=on build, make stops before compilation with No rule to make target .../common/src/v057_tma_compile.o; either add a common/src%.cpp pattern rule or move this probe out of the wildcarded runtime directory.

Useful? React with 👍 / 👎.

Comment on lines +153 to +155
$(TARGET): clean $(LINK_SCRIPT) $(COMM_OBJ) $(FREESTANDING_RUNTIME_OBJ) $(OBJ) $(EXTRA_OBJ_FILES)
@mkdir -p $(shell dirname $@)
$(LINK) $(CC_LINK) $(OBJ) $(COMM_OBJ) $(EXTRA_OBJ_FILES) -o $@
$(LINK) $(CC_LINK) $(OBJ) $(COMM_OBJ) $(FREESTANDING_RUNTIME_OBJ) $(EXTRA_OBJ_FILES) -o $@

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Gate freestanding runtime for baremetal links

The two-level baremetal path has the same duplication as the one-level Makefile: when baremetal=on, COMM_OBJ already expands the new freestanding_runtime.c, and this link command adds $(FREESTANDING_RUNTIME_OBJ) again. After the common C++ object issue is fixed, baremetal links will still fail with duplicate runtime symbols unless this extra object is limited to the non-baremetal path or removed from COMM_OBJ.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant